/**
 * Copyright (c) 2013-2022 Nikita Koksharov
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.redisson.client.protocol.convertor;


/**
 * 实现了将对象转换为布尔值的转换器。
 * 该转换器专注于将输入对象与初始化时指定的数字进行比较，以决定转换后的布尔值。
 */
public class BooleanNumberReplayConvertor implements Convertor<Boolean> {

    /**
     * 初始化时提供的数字，用于后续的比较操作。
     */
    private long number;

    /**
     * 构造函数，初始化转换器时指定要比较的数字。
     *
     * @param number 要比较的数字，用于后续的转换操作。
     */
    public BooleanNumberReplayConvertor(long number) {
        super();
        this.number = number;
    }

    /**
     * 将输入的对象转换为布尔值。
     * 该方法通过比较输入对象和构造函数中指定的数字来决定返回值。
     * 如果输入的对象不是长整型，或者与指定的数字不相等，则返回true；否则返回false。
     *
     * @param obj 要转换的对象，预期为长整型。
     * @return 布尔值，表示输入对象是否与指定数字相等。
     */
    @Override
    public Boolean convert(Object obj) {
        return (Long) obj != number;
    }

}
